9x9 705 unsolvable.txt

Order 3: digits 9; houses 27, cells 81.

Grid.grid1: initial copying

pending={a1, a6, a8, b4, b9, c3, c5, c7, d1, d9, e3, e5, e7, f2, f8, g2, g5, h1, h6, h8, i3, i4}

deduce.grid1: naked-singles

deduce.grid1: hidden-singles

deduce.grid1: naked-pairs

two's heap=a5 {3|5}, c8 {2|9}, e1 {2|7}.

grid1
1 2 3 4 5 6 7 8 9
a 9
123
   
   
1  
  6
7  
1  
 56
   
  3
 5 
   
4
12 
   
7  
8
12 
 5 
7  
b
1  
  6
7  
1  
4  
 8 
1  
4 6
78 
2
   
 5 
 89
1  
  6
 89
1  
4  
7 9
   
 5 
7 9
3
c
123
   
   
123
4  
 8 
5
1  
   
 89
7
1 3
   
 89
6
 2 
   
  9
12 
4  
   
d 8
12 
45 
   
1  
4  
7  
   
456
7  
 23
45 
   
 23
  6
7  
123
   
7  
 23
  6
7  
9
e
 2 
   
7  
 2 
4  
  9
3
   
4 6
789
1
 2 
  6
789
5
 2 
  6
7  
 2 
  6
78 
f
12 
 5 
7  
6
1  
   
7 9
   
 5 
789
 23
 5 
 89
 23
   
789
123
   
78 
4
12 
   
78 
g
1 3
 5 
   
7
1  
   
 89
1  
4  
 89
6
12 
   
 89
 23
4  
 89
 23
 5 
  9
 2 
45 
 8 
h 4
  3
   
 89
   
  6
 89
   
   
789
 2 
   
 89
5
 23
   
789
1
 2 
  6
78 
i
1  
 56
   
1  
 5 
 89
2 3
   
4  
 89
1  
   
789
   
4  
789
   
 56
7 9
   
456
78 

backtrack.grid1 → grid2: a5 guess 3 ∈ {3|5}

pending={a5}

deduce.grid2: naked-singles

deduce.grid2: hidden-singles

deduce.grid2: naked-pairs

two's heap=a2 {1|2}, c8 {2|9}, e1 {2|7}.

grid2
1 2 3 4 5 6 7 8 9
a 9
12 
   
   
1  
  6
7  
1  
 56
   
3 4
12 
   
7  
8
12 
 5 
7  
b
1  
  6
7  
1  
4  
 8 
1  
4 6
78 
2
   
 5 
 89
1  
  6
 89
1  
4  
7 9
   
 5 
7 9
3
c
123
   
   
123
4  
 8 
5
1  
   
 89
7
1  
   
 89
6
 2 
   
  9
12 
4  
   
d 8
12 
45 
   
1  
4  
7  
   
456
7  
 2 
45 
   
 23
  6
7  
123
   
7  
 23
  6
7  
9
e
 2 
   
7  
 2 
4  
  9
3
   
4 6
789
1
 2 
  6
789
5
 2 
  6
7  
 2 
  6
78 
f
12 
 5 
7  
6
1  
   
7 9
   
 5 
789
 2 
 5 
 89
 23
   
789
123
   
78 
4
12 
   
78 
g
1 3
 5 
   
7
1  
   
 89
1  
4  
 89
6
12 
   
 89
 23
4  
 89
 23
 5 
  9
 2 
45 
 8 
h 4
  3
   
 89
   
  6
 89
   
   
789
 2 
   
 89
5
 23
   
789
1
 2 
  6
78 
i
1  
 56
   
1  
 5 
 89
2 3
   
4  
 89
1  
   
789
   
4  
789
   
 56
7 9
   
456
78 

backtrack.grid2 → grid3: a2 guess 1 ∈ {1|2}

pending={a2}

deduce.grid3: naked-singles

deduce.grid3: hidden-singles

deduce.grid3: naked-pairs

two's heap=c1 {2|3}, e1 {2|7}, a4 {5|6}, a3 {6|7}, b2 {4|8}, a7 {2|7}, c8 {2|9}, b1 {6|7}.

Naked-pair {6|7} in cells {a3, b1} contained within {box1}, updating cells {b2, b3, c1, c2}:

grid3
1 2 3 4 5 6 7 8 9
a 9 1
   
  6
7  
   
 56
   
3 4
 2 
   
7  
8
 2 
 5 
7  
b
   
  6
7  
   
4  
 8 
   
4  
 8 
2
   
 5 
 89
1  
  6
 89
1  
4  
7 9
   
 5 
7 9
3
c
 23
   
   
 23
4  
 8 
5
1  
   
 89
7
1  
   
 89
6
 2 
   
  9
12 
4  
   
d 8
 2 
45 
   
1  
4  
7  
   
456
7  
 2 
45 
   
 23
  6
7  
123
   
7  
 23
  6
7  
9
e
 2 
   
7  
 2 
4  
  9
3
   
4 6
789
1
 2 
  6
789
5
 2 
  6
7  
 2 
  6
78 
f
12 
 5 
7  
6
1  
   
7 9
   
 5 
789
 2 
 5 
 89
 23
   
789
123
   
78 
4
12 
   
78 
g
1 3
 5 
   
7
1  
   
 89
1  
4  
 89
6
12 
   
 89
 23
4  
 89
 23
 5 
  9
 2 
45 
 8 
h 4
  3
   
 89
   
  6
 89
   
   
789
 2 
   
 89
5
 23
   
789
1
 2 
  6
78 
i
1  
 56
   
   
 5 
 89
2 3
   
4  
 89
1  
   
789
   
4  
789
   
 56
7 9
   
456
78 

backtrack.grid3 → grid4: a3 guess 6 ∈ {6|7}

pending={a3}

deduce.grid4: naked-singles

deduce.grid4: hidden-singles

deduce.grid4.rowb. b6 is 6 by hidden-single.

deduce.grid4.rowb. b8 is 5 by hidden-single.

pending={b6, b8}

deduce.grid4: naked-singles

deduce.grid4: hidden-singles

deduce.grid4.rowb. b7 is 1 by hidden-single.

pending={b7}

deduce.grid4: naked-singles

deduce.grid4: hidden-singles

deduce.grid4.rowb. b5 is 9 by hidden-single.

pending={b5}

deduce.grid4: naked-singles

deduce.grid4: hidden-singles

deduce.grid4.rowc. c8 is 9 by hidden-single.

pending={c8}

deduce.grid4: naked-singles

deduce.grid4: hidden-singles

deduce.grid4.rowd. d3 is 1 by hidden-single.

pending={d3}

deduce.grid4: naked-singles

grid4 didn't work: naked-singles ran out of candidates.

…backtrack.grid3 again

backtrack.grid3 → grid5: a3 guess 7 ∈ {6|7}

pending={a3}

deduce.grid5: naked-singles

deduce.grid5: hidden-singles

deduce.grid5.rowb. b5 is 5 by hidden-single.

pending={b5}

deduce.grid5: naked-singles

deduce.grid5: hidden-singles

deduce.grid5.rowb. b6 is 9 by hidden-single.

pending={b6}

deduce.grid5: naked-singles

deduce.grid5: hidden-singles

deduce.grid5.rowb. b7 is 1 by hidden-single.

pending={b7}

deduce.grid5: naked-singles

deduce.grid5: hidden-singles

deduce.grid5.rowd. d3 is 1 by hidden-single.

pending={d3}

deduce.grid5: naked-singles

deduce.grid5: hidden-singles

deduce.grid5.rowe. e4 is 9 by hidden-single.

pending={e4}

deduce.grid5: naked-singles

grid5 didn't work: naked-singles ran out of candidates.

…backtrack.grid3 again

grid3 didn't work: exhaustive search revealed no solution.

…backtrack.grid2 again

backtrack.grid2 → grid6: a2 guess 2 ∈ {1|2}

pending={a2}

deduce.grid6: naked-singles

deduce.grid6: hidden-singles

deduce.grid6: naked-pairs

two's heap=c1 {1|3}, a7 {1|7}, c8 {2|9}, e1 {2|7}, e2 {4|9}.

grid6
1 2 3 4 5 6 7 8 9
a 9 2
1  
  6
7  
1  
 56
   
3 4
1  
   
7  
8
1  
 5 
7  
b
1  
  6
7  
1  
4  
 8 
1  
4 6
78 
2
   
 5 
 89
1  
  6
 89
1  
4  
7 9
   
 5 
7 9
3
c
1 3
   
   
1 3
4  
 8 
5
1  
   
 89
7
1  
   
 89
6
 2 
   
  9
12 
4  
   
d 8
1  
45 
   
1  
4  
7  
   
456
7  
 2 
45 
   
 23
  6
7  
123
   
7  
 23
  6
7  
9
e
 2 
   
7  
   
4  
  9
3
   
4 6
789
1
 2 
  6
789
5
 2 
  6
7  
 2 
  6
78 
f
12 
 5 
7  
6
1  
   
7 9
   
 5 
789
 2 
 5 
 89
 23
   
789
123
   
78 
4
12 
   
78 
g
1 3
 5 
   
7
1  
   
 89
1  
4  
 89
6
12 
   
 89
 23
4  
 89
 23
 5 
  9
 2 
45 
 8 
h 4
  3
   
 89
   
  6
 89
   
   
789
 2 
   
 89
5
 23
   
789
1
 2 
  6
78 
i
1  
 56
   
1  
 5 
 89
2 3
   
4  
 89
1  
   
789
   
4  
789
   
 56
7 9
   
456
78 

backtrack.grid6 → grid7: a7 guess 1 ∈ {1|7}

pending={a7}

deduce.grid7: naked-singles

deduce.grid7: hidden-singles

deduce.grid7.col9. f9 is 1 by hidden-single.

pending={f9}

deduce.grid7: naked-singles

deduce.grid7: hidden-singles

deduce.grid7: naked-pairs

two's heap=c1 {1|3}, a4 {5|6}, c9 {2|4}, a3 {6|7}, c8 {2|9}, a9 {5|7}, e1 {2|7}, e2 {4|9}, f3 {7|9}.

grid7
1 2 3 4 5 6 7 8 9
a 9 2
   
  6
7  
   
 56
   
3 4 1 8
   
 5 
7  
b
1  
  6
7  
1  
4  
 8 
1  
4 6
78 
2
   
 5 
 89
1  
  6
 89
   
4  
7 9
   
 5 
7 9
3
c
1 3
   
   
1 3
4  
 8 
5
1  
   
 89
7
1  
   
 89
6
 2 
   
  9
 2 
4  
   
d 8
1  
45 
   
1  
4  
7  
   
456
7  
 2 
45 
   
 23
  6
7  
 23
   
7  
 23
  6
7  
9
e
 2 
   
7  
   
4  
  9
3
   
4 6
789
1
 2 
  6
789
5
 2 
  6
7  
 2 
  6
78 
f
 2 
 5 
7  
6
   
   
7 9
   
 5 
789
 2 
 5 
 89
 23
   
789
 23
   
78 
4 1
g
1 3
 5 
   
7
1  
   
 89
1  
4  
 89
6
12 
   
 89
 23
4  
 89
 23
 5 
  9
 2 
45 
 8 
h 4
  3
   
 89
   
  6
 89
   
   
789
 2 
   
 89
5
 23
   
789
1
 2 
  6
78 
i
1  
 56
   
1  
 5 
 89
2 3
   
4  
 89
1  
   
789
   
4  
789
   
 56
7 9
   
456
78 

backtrack.grid7 → grid8: a3 guess 6 ∈ {6|7}

pending={a3}

deduce.grid8: naked-singles

deduce.grid8: hidden-singles

deduce.grid8.rowb. b6 is 6 by hidden-single.

deduce.grid8.rowb. b8 is 5 by hidden-single.

pending={b6, b8}

deduce.grid8: naked-singles

deduce.grid8: hidden-singles

deduce.grid8.rowh. h9 is 6 by hidden-single.

pending={h9}

deduce.grid8: naked-singles

deduce.grid8: hidden-singles

deduce.grid8.rowi. i1 is 6 by hidden-single.

pending={i1}

deduce.grid8: naked-singles

deduce.grid8: hidden-singles

deduce.grid8: naked-pairs

two's heap=c1 {1|3}, b1 {1|7}, c9 {2|4}, e9 {2|8}, c8 {2|9}, b7 {4|9}, e1 {2|7}, b5 {8|9}, e2 {4|9}, f3 {7|9}, h3 {8|9}, i8 {7|9}.

grid8
1 2 3 4 5 6 7 8 9
a 9 2 6 5 3 4 1 8 7
b
1  
   
7  
1  
4  
 8 
1  
4  
78 
2
   
   
 89
6
   
4  
  9
5 3
c
1 3
   
   
1 3
4  
 8 
5
1  
   
 89
7
1  
   
 89
6
 2 
   
  9
 2 
4  
   
d 8
1  
45 
   
1  
4  
7  
   
4 6
7  
 2 
45 
   
 23
   
7  
 23
   
7  
 23
  6
7  
9
e
 2 
   
7  
   
4  
  9
3
   
4 6
789
1
 2 
   
789
5
 2 
  6
7  
 2 
   
 8 
f
 2 
 5 
7  
6
   
   
7 9
   
   
789
 2 
 5 
 89
 23
   
789
 23
   
78 
4 1
g
1 3
 5 
   
7
1  
   
 89
1  
4  
 89
6
12 
   
 89
 23
4  
 89
 23
   
  9
 2 
45 
 8 
h 4
  3
   
 89
   
   
 89
   
   
789
 2 
   
 89
5
 23
   
789
1 6
i 6
1  
 5 
 89
2 3
   
4  
 89
1  
   
789
   
4  
789
   
   
7 9
   
45 
 8 

backtrack.grid8 → grid9: b1 guess 1 ∈ {1|7}

pending={b1}

deduce.grid9: naked-singles

deduce.grid9: hidden-singles

deduce.grid9.rowb. b3 is 7 by hidden-single.

pending={b3}

deduce.grid9: naked-singles

grid9 didn't work: naked-singles ran out of candidates.

…backtrack.grid8 again

backtrack.grid8 → grid10: b1 guess 7 ∈ {1|7}

pending={b1}

deduce.grid10: naked-singles

deduce.grid10: hidden-singles

deduce.grid10.rowd. d5 is 5 by hidden-single.

pending={d5}

deduce.grid10: naked-singles

deduce.grid10: hidden-singles

deduce.grid10.rowg. g9 is 5 by hidden-single.

pending={g9}

deduce.grid10: naked-singles

deduce.grid10: hidden-singles

deduce.grid10.rowb. b5 is 9 by hidden-single.

pending={b5}

deduce.grid10: naked-singles

grid10 didn't work: naked-singles ran out of candidates.

…backtrack.grid8 again

grid8 didn't work: exhaustive search revealed no solution.

…backtrack.grid7 again

backtrack.grid7 → grid11: a3 guess 7 ∈ {6|7}

pending={a3}

deduce.grid11: naked-singles

deduce.grid11: hidden-singles

deduce.grid11.rowb. b1 is 6 by hidden-single.

deduce.grid11.rowb. b5 is 5 by hidden-single.

pending={b1, b5}

deduce.grid11: naked-singles

deduce.grid11: hidden-singles

deduce.grid11.rowc. c9 is 4 by hidden-single.

pending={c9}

deduce.grid11: naked-singles

deduce.grid11: hidden-singles

deduce.grid11.rowc. c8 is 2 by hidden-single.

pending={c8}

deduce.grid11: naked-singles

deduce.grid11: hidden-singles

deduce.grid11.rowf. f4 is 5 by hidden-single.

pending={f4}

deduce.grid11: naked-singles

deduce.grid11: hidden-singles

deduce.grid11.rowh. h5 is 2 by hidden-single.

pending={h5}

deduce.grid11: naked-singles

grid11 didn't work: naked-singles ran out of candidates.

…backtrack.grid7 again

grid7 didn't work: exhaustive search revealed no solution.

…backtrack.grid6 again

backtrack.grid6 → grid12: a7 guess 7 ∈ {1|7}

pending={a7}

deduce.grid12: naked-singles

deduce.grid12: hidden-singles

deduce.grid12: naked-pairs

two's heap=c1 {1|3}, a9 {1|5}, e1 {2|7}, a3 {1|6}, c8 {2|9}, b8 {5|9}, e2 {4|9}.

grid12
1 2 3 4 5 6 7 8 9
a 9 2
1  
  6
   
1  
 56
   
3 4 7 8
1  
 5 
   
b
1  
  6
7  
1  
4  
 8 
1  
4 6
78 
2
   
 5 
 89
1  
  6
 89
1  
4  
  9
   
 5 
  9
3
c
1 3
   
   
1 3
4  
 8 
5
1  
   
 89
7
1  
   
 89
6
 2 
   
  9
12 
4  
   
d 8
1  
45 
   
1  
4  
7  
   
456
7  
 2 
45 
   
 23
  6
7  
123
   
   
 23
  6
7  
9
e
 2 
   
7  
   
4  
  9
3
   
4 6
789
1
 2 
  6
789
5
 2 
  6
7  
 2 
  6
78 
f
12 
 5 
7  
6
1  
   
7 9
   
 5 
789
 2 
 5 
 89
 23
   
789
123
   
 8 
4
12 
   
78 
g
1 3
 5 
   
7
1  
   
 89
1  
4  
 89
6
12 
   
 89
 23
4  
 89
 23
 5 
  9
 2 
45 
 8 
h 4
  3
   
 89
   
  6
 89
   
   
789
 2 
   
 89
5
 23
   
 89
1
 2 
  6
78 
i
1  
 56
   
1  
 5 
 89
2 3
   
4  
 89
1  
   
789
   
4  
 89
   
 56
7 9
   
456
78 

backtrack.grid12 → grid13: a3 guess 1 ∈ {1|6}

pending={a3}

deduce.grid13: naked-singles

deduce.grid13: hidden-singles

deduce.grid13.rowb. b5 is 5 by hidden-single.

pending={b5}

deduce.grid13: naked-singles

deduce.grid13: hidden-singles

deduce.grid13.col2. h2 is 3 by hidden-single.

pending={h2}

deduce.grid13: naked-singles

deduce.grid13: hidden-singles

deduce.grid13: naked-pairs

two's heap=b7 {1|4}, d5 {2|4}, c9 {1|4}, e1 {2|7}, e8 {6|7}, g1 {1|5}, g8 {3|5}, b2 {4|8}, b1 {6|7}, e2 {4|9}, c2 {4|8}, f3 {7|9}, b6 {1|8}, g3 {8|9}, d3 {4|7}.

Naked-pair {4|8} in cells {b2, c2} contained within {col2, box1}, updating cells {b1, b3, d2, e2, i2}:

pending={e2}

deduce.grid13: naked-singles

deduce.grid13: hidden-singles

deduce.grid13.rowe. e4 is 4 by hidden-single.

pending={e4}

deduce.grid13: naked-singles

deduce.grid13: hidden-singles

deduce.grid13.rowh. h9 is 6 by hidden-single.

pending={h9}

deduce.grid13: naked-singles

deduce.grid13: hidden-singles

deduce.grid13.rowh. h4 is 7 by hidden-single.

deduce.grid13.rowh. h7 is 2 by hidden-single.

pending={h4, h7}

deduce.grid13: naked-singles

grid13 didn't work: naked-singles ran out of candidates.

…backtrack.grid12 again

backtrack.grid12 → grid14: a3 guess 6 ∈ {1|6}

pending={a3}

deduce.grid14: naked-singles

deduce.grid14: hidden-singles

deduce.grid14.rowb. b6 is 6 by hidden-single.

pending={b6}

deduce.grid14: naked-singles

deduce.grid14: hidden-singles

deduce.grid14.rowh. h9 is 6 by hidden-single.

pending={h9}

deduce.grid14: naked-singles

deduce.grid14: hidden-singles

deduce.grid14.rowh. h4 is 7 by hidden-single.

pending={h4}

deduce.grid14: naked-singles

deduce.grid14: hidden-singles

deduce.grid14.rowi. i1 is 6 by hidden-single.

pending={i1}

deduce.grid14: naked-singles

deduce.grid14: hidden-singles

deduce.grid14: naked-pairs

two's heap=c1 {1|3}, a4 {1|5}, b1 {1|7}, e2 {4|9}, a9 {1|5}, c8 {2|9}, e1 {2|7}, b8 {5|9}, h3 {8|9}.

grid14
1 2 3 4 5 6 7 8 9
a 9 2 6
1  
 5 
   
3 4 7 8
1  
 5 
   
b
1  
   
7  
1  
4  
 8 
1  
4  
78 
2
   
 5 
 89
6
1  
4  
  9
   
 5 
  9
3
c
1 3
   
   
1 3
4  
 8 
5
1  
   
 89
7
1  
   
 89
6
 2 
   
  9
12 
4  
   
d 8
1  
45 
   
1  
4  
7  
   
456
   
 2 
45 
   
 23
   
7  
123
   
   
 23
  6
7  
9
e
 2 
   
7  
   
4  
  9
3
   
4 6
 89
1
 2 
   
789
5
 2 
  6
7  
 2 
   
78 
f
12 
 5 
7  
6
1  
   
7 9
   
 5 
 89
 2 
 5 
 89
 23
   
789
123
   
 8 
4
12 
   
78 
g
1 3
 5 
   
7
1  
   
 89
1  
4  
 89
6
12 
   
 89
 23
4  
 89
 23
 5 
  9
 2 
45 
 8 
h 4
  3
   
 89
   
   
 89
7
 2 
   
 89
5
 23
   
 89
1 6
i 6
1  
 5 
 89
2 3
   
4  
 89
1  
   
 89
   
4  
 89
   
 5 
7 9
   
45 
78 

backtrack.grid14 → grid15: a4 guess 1 ∈ {1|5}

pending={a4}

deduce.grid15: naked-singles

deduce.grid15: hidden-singles

deduce.grid15.rowb. b5 is 5 by hidden-single.

pending={b5}

deduce.grid15: naked-singles

deduce.grid15: hidden-singles

deduce.grid15: naked-pairs

two's heap=c1 {1|3}, g8 {3|5}, b7 {1|4}, e1 {2|7}, b1 {1|7}, c9 {1|4}, d5 {2|4}, c4 {8|9}, e2 {4|9}, c6 {8|9}, e8 {6|7}, h3 {8|9}, i8 {5|7}.

Naked-pair {8|9} in cells {c4, c6, h3} contained within {rowc, box2}, updating cells {c1, c2, c9}:

grid15
1 2 3 4 5 6 7 8 9
a 9 2 6 1 3 4 7 8 5
b
1  
   
7  
1  
4  
 8 
1  
4  
78 
2 5 6
1  
4  
   
9 3
c
1 3
   
   
1 3
4  
   
5
   
   
 89
7
   
   
 89
6 2
1  
4  
   
d 8
1  
45 
   
1  
4  
7  
   
456
   
 2 
4  
   
 23
   
7  
123
   
   
  3
  6
7  
9
e
 2 
   
7  
   
4  
  9
3
   
4 6
 89
1
 2 
   
789
5
   
  6
7  
 2 
   
78 
f
12 
 5 
7  
6
1  
   
7 9
   
 5 
 89
 2 
   
 89
 23
   
789
123
   
 8 
4
12 
   
78 
g
1 3
 5 
   
7
1  
   
 89
   
4  
 89
6
12 
   
 89
 23
4  
 89
  3
 5 
   
 2 
4  
 8 
h 4
  3
   
 89
   
   
 89
7
 2 
   
 89
5
 23
   
 89
1 6
i 6
1  
 5 
 89
2 3
   
4  
 89
1  
   
 89
   
4  
 89
   
 5 
7  
   
4  
78 

backtrack.grid15 → grid16: b1 guess 1 ∈ {1|7}

pending={b1}

deduce.grid16: naked-singles

deduce.grid16: hidden-singles

deduce.grid16.rowe. e4 is 4 by hidden-single.

pending={e4}

deduce.grid16: naked-singles

deduce.grid16: hidden-singles

deduce.grid16.rowf. f4 is 5 by hidden-single.

deduce.grid16.rowf. f7 is 3 by hidden-single.

pending={f4, f7}

deduce.grid16: naked-singles

deduce.grid16: hidden-singles

deduce.grid16.rowg. g6 is 1 by hidden-single.

deduce.grid16.rowg. g9 is 4 by hidden-single.

pending={g6, g9}

deduce.grid16: naked-singles

deduce.grid16: hidden-singles

deduce.grid16.rowg. g7 is 2 by hidden-single.

pending={g7}

deduce.grid16: naked-singles

deduce.grid16: hidden-singles

grid16 didn't work: rowh is not bijective.

…backtrack.grid15 again

backtrack.grid15 → grid17: b1 guess 7 ∈ {1|7}

pending={b1}

deduce.grid17: naked-singles

deduce.grid17: hidden-singles

deduce.grid17: naked-pairs

two's heap=c1 {1|3}, b7 {1|4}, d5 {2|4}, e8 {6|7}, c9 {1|4}, i8 {5|7}, e2 {4|9}, c6 {8|9}, e9 {7|8}, f1 {1|5}, g8 {3|5}, h3 {8|9}, c4 {8|9}.

Naked-pair {8|9} in cells {c4, c6, h3} contained within {rowc, box2}, updating cells {c1, c2, c9}:

grid17
1 2 3 4 5 6 7 8 9
a 9 2 6 1 3 4 7 8 5
b 7
1  
4  
 8 
1  
4  
 8 
2 5 6
1  
4  
   
9 3
c
1 3
   
   
1 3
4  
   
5
   
   
 89
7
   
   
 89
6 2
1  
4  
   
d 8
1  
45 
   
1  
4  
7  
   
456
   
 2 
4  
   
 23
   
7  
123
   
   
  3
  6
7  
9
e 2
   
4  
  9
3
   
4 6
 89
1
   
   
789
5
   
  6
7  
   
   
78 
f
1  
 5 
   
6
1  
   
7 9
   
 5 
 89
 2 
   
 89
 23
   
789
123
   
 8 
4
12 
   
78 
g
1 3
 5 
   
7
1  
   
 89
   
4  
 89
6
12 
   
 89
 23
4  
 89
  3
 5 
   
 2 
4  
 8 
h 4
  3
   
 89
   
   
 89
7
 2 
   
 89
5
 23
   
 89
1 6
i 6
1  
 5 
 89
2 3
   
4  
 89
1  
   
 89
   
4  
 89
   
 5 
7  
   
4  
78 

backtrack.grid17 → grid18: b7 guess 1 ∈ {1|4}

pending={b7}

deduce.grid18: naked-singles

deduce.grid18: hidden-singles

deduce.grid18.col9. f9 is 1 by hidden-single.

pending={f9}

deduce.grid18: naked-singles

deduce.grid18: hidden-singles

deduce.grid18.rowd. d4 is 5 by hidden-single.

pending={d4}

deduce.grid18: naked-singles

deduce.grid18: hidden-singles

deduce.grid18.rowd. d8 is 6 by hidden-single.

pending={d8}

deduce.grid18: naked-singles

grid18 didn't work: naked-singles ran out of candidates.

…backtrack.grid17 again

backtrack.grid17 → grid19: b7 guess 4 ∈ {1|4}

pending={b7}

deduce.grid19: naked-singles

deduce.grid19: hidden-singles

deduce.grid19.rowe. e4 is 4 by hidden-single.

pending={e4}

deduce.grid19: naked-singles

deduce.grid19: hidden-singles

deduce.grid19.rowd. d3 is 4 by hidden-single.

pending={d3}

deduce.grid19: naked-singles

deduce.grid19: hidden-singles

deduce.grid19.rowe. e8 is 6 by hidden-single.

pending={e8}

deduce.grid19: naked-singles

deduce.grid19: hidden-singles

deduce.grid19.rowd. d4 is 6 by hidden-single.

pending={d4}

deduce.grid19: naked-singles

deduce.grid19: hidden-singles

deduce.grid19.rowd. d2 is 5 by hidden-single.

pending={d2}

deduce.grid19: naked-singles

deduce.grid19: hidden-singles

deduce.grid19.rowf. f4 is 5 by hidden-single.

pending={f4}

deduce.grid19: naked-singles

deduce.grid19: hidden-singles

deduce.grid19.rowh. h2 is 3 by hidden-single.

deduce.grid19.rowh. h7 is 2 by hidden-single.

pending={h2, h7}

deduce.grid19: naked-singles

deduce.grid19: hidden-singles

deduce.grid19.rowg. g6 is 2 by hidden-single.

pending={g6}

deduce.grid19: naked-singles

deduce.grid19: hidden-singles

deduce.grid19.rowg. g3 is 1 by hidden-single.

pending={g3}

deduce.grid19: naked-singles

deduce.grid19. Solved.

grid19
1 2 3 4 5 6 7 8 9
a 9 2 6 1 3 4 7 8 5
b 7 1 8 2 5 6 4 9 3
c 3 4 5 8 7 9 6 2 1
d 8 5 4 6 2 3 1 7 9
e 2 9 3 4 1 7 5 6 8
f 1 6 7 5 9 8 3 4 2
g 5 7 1 9 6 2 8 3 4
h 4 3 9 7 8 5 2 1 6
i 6 8 2 3 4 1 9 5 7

grid19. Copying solution to raw grid.